type Padding = "Pkcs7" | "AnsiX923" | "Iso10126" | "Iso97971" | "ZeroPadding" | "NoPadding"

type Mode = "CBC" | "CFB" | "CTR" | "CTRGladman" | "OFB" | "ECB"


type AESConfig = {
    iv?: string | "",
    mode?: Mode,
    padding?: Padding
}
export type Tool = {
    data: {
        set: (key: string, data: any, dateTime?: string) => void,
        get: (key: string) => any,
        remove: (key: string) => void,
        clear: () => void
    },
    crypto: {
        MD5: (data: any) => string,
        BASE64: {
            encrypt: (data: any) => string,
            decrypt: (cipher: string) => any
        },
        AES: {
            encrypt: (data: any, secretKey: string, config?: AESConfig) => string
            decrypt: (cipher: any, secretKey: string, config?: AESConfig) => any
        }
    }
}
